//结合哈希表（字符是否出现）
class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int left=0,right=0,n=s.size();
        int ret=0;
        int hash[128]={0};              //创建哈希表
        //d a b c a e
        while(right<n)  //right先移到第二个a
        {
            hash[s[right]]++;           //映射
            while(hash[s[right]]>1)     //遇到重复元素->出窗口（left跳到第一个a）
            {
                hash[s[left]]--;        //边出，边删
                left++;
            }
            ret=max(ret,right-left+1);  //一直更新最长值
            right++;                    //直接移动到下一个

        }
        return ret;
    }
};